import request from '@/config/axios'

export interface DriverVO {
  id: number
  userId: number
  username: string
  nickname: string
  mobile: string
  email: string
  sex: number
  avatar: string
  status: number
  // 司机信息字段
  idCardFrontImg: string // 身份证正面照片
  idCardBackImg: string // 身份证背面照片
  driverLicenseImg: string // 驾驶证照片
  driverLicenseNo: string // 驾驶证号
  rideHailingLicense: string // 网约车驾驶员证
  licenseIssueDate: Date // 证件签发日期
  licenseValidStart: Date // 证件有效期开始
  licenseValidEnd: Date // 证件有效期结束
  serviceCity: string // 服务城市
  managerId: number // 管理员ID
  workStatus: number // 工作状态：0-空闲，1-工作中，2-休息
  emergencyContact: string // 紧急联系人
  emergencyContactPhone: string // 紧急联系人电话
  bankName: string // 银行名称
  bankAccount: string // 银行账号
  accountHolder: string // 开户人姓名
  serviceScore: number // 服务评分
  completedOrders: number // 完成订单数
  monthlyOrders: number // 月订单数
  auditStatus: number // 审核状态
  auditRemark: string // 审核备注
  auditTime: Date // 审核时间
  auditorId: number // 审核人ID
  // 用户信息字段
  realNameStatus: number // 实名认证状态
  realNameTime: Date // 实名认证时间
  loginIp: string
  loginDate: Date
  userType: number // 用户类型
  idCard: string // 身份证号
  balance: number // 账户余额
  createTime: Date
  updateTime: Date
}

// 查询司机管理列表
export const getDriverPage = (params: PageParam) => {
  return request.get({ url: '/system/driver-info/page', params })
}

// 查询司机详情
export const getDriver = (id: number) => {
  return request.get({ url: '/system/driver-info/get-with-user-info?id=' + id })
}

// 新增司机
export const createDriver = (data: DriverVO) => {
  return request.post({ url: '/system/driver-info/create', data })
}

// 修改司机
export const updateDriver = (data: DriverVO) => {
  return request.put({ url: '/system/driver-info/update', data })
}

// 删除司机
export const deleteDriver = (id: number) => {
  return request.delete({ url: '/system/driver-info/delete?id=' + id })
}

// 批量删除司机
export const deleteDriverList = (ids: number[]) => {
  return request.delete({ url: '/system/driver-info/delete-batch', data: { ids } })
}

// 导出司机
export const exportDriver = (params) => {
  return request.download({ url: '/system/driver-info/export-excel', params })
}

// 下载司机导入模板
export const importDriverTemplate = () => {
  return request.download({ url: '/system/driver-info/get-import-template' })
}

// 司机密码重置
export const resetDriverPassword = (id: number, password: string) => {
  const data = {
    id,
    password
  }
  return request.put({ url: '/system/driver-info/reset-password', data: data })
}

// 司机状态修改
export const updateDriverStatus = (id: number, status: number) => {
  const data = {
    id,
    status
  }
  return request.put({ url: '/system/driver-info/update-status', data: data })
}

// 司机工作状态修改
export const updateDriverWorkStatus = (id: number, workStatus: number) => {
  const data = {
    id,
    workStatus
  }
  return request.put({ url: '/system/driver-info/update-work-status', data: data })
}

// 获取司机精简信息列表
export const getSimpleDriverList = (): Promise<DriverVO[]> => {
  return request.get({ url: '/system/driver-info/simple-list' })
}
